/*
 * 防止与外界污染,匿名函数包裹
 */
 (function(){
 	// 定义一个对象
 	var datepicker = {};
 	
 	// 获取选中月份的数据
 	datepicker.getMonthData= function(year,month){
 		// 定义一个数组，来接收数据并返回
 		var ret = [];
 		// 如果传入参数为空，就取当前年月的数据
 		if(!year || !month){
 			var today = new Date();
 			year = today.getFullYear();
 			month = today.getMonth() + 1;
 		}
 		// 获取当月的第一天
 		var firstDay = new Date(year,month-1,1);
 		// 获取当月第一天是星期几
 		var firstDayWeekDay = firstDay.getDay();
 		// 星期日的index是零，处理一下
 		if(firstDayWeekDay === 0){
 			firstDayWeekDay = 7;
 		}
 		// 获取当前月的年月的值
 		year = firstDay.getFullYear();
 		month = firstDay.getMonth()+1;
 		// 获取当月的上一个月最后一天
 		var lastDayOfLastMonth = new Date(year,month-1,0);
 		// 获取当月的上一个月最后一天的日期,形式：2016-12-31 00:00:00,得到值：31
 		var lastDateOfLastMonth = lastDayOfLastMonth.getDate();
 		// 计算当月第一天前面要显示几个上一个月的天数
 		var prevMonthDayCount = firstDayWeekDay - 1;
 		// 当月的最后一天，越界进位
 		var lastDay = new Date(year,month,0);
 		// 当月最后一天的日期
 		var lastDate = lastDay.getDate();
 		
 		// 循环获取一个月的数据,6周，一周7天
 		for(var i=0;i<7*6;i++){
 			// 当月的哪一天
 			var date =  i+1-prevMonthDayCount;
 			// 页面显示值
 			var showDate = date;
 			var thisMonth = month;
 			// 上一个月
 			if(date <= 0){
 				thisMonth = month-1;
 				// 比如上一个月的31，date=-1
 				showDate = lastDateOfLastMonth+date;
 			}else if(date > lastDate){
 				// 下一个月,比如date=32，大于31,2016-13-32---2016-12-31
 				thisMonth = month+1;
 				// 32-31=1
 				showDate = showDate-lastDate;
 			}
 			// 对月份处理
 			if(thisMonth===0){
 				thisMonth=12;
 			}
 			if(thisMonth===13){
 				thisMonth=1;
 			}
 			// 存入数组中
 			ret.push({
 				month:thisMonth,
 				date:date,
 				showDate:showDate
 			});
 		}
 		// 返回当月数据结果,由数组变为对象
// 		return ret;
		return {
			year:year,
			month:month,
			days:ret
		};
 	};
 	
 	 	// 暴露给外界，写入window对象中
 	window.datepicker = datepicker;

 })();


